package com.shuda.business.data.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;

import java.time.LocalDateTime;

/**
 * 数据处理引擎查询DTO类
 */
@Schema(name = "DataProcessingEngineQueryDTO", description = "数据处理引擎查询DTO")
public class DataProcessingEngineQueryDTO {

    @Schema(description = "渠道ID")
    private Long channelId;

    @Schema(description = "配置类型(field_mapping-字段映射,script-脚本配置)")
    private String configType;

    @Schema(description = "源字段名")
    private String sourceField;

    @Schema(description = "目标字段名")
    private String targetField;

    @Schema(description = "配置状态(enabled-启用,disabled-禁用)")
    private String configStatus;

    @Schema(description = "开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime startTime;

    @Schema(description = "结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime endTime;

    /**
    *
    * DataProcessingEngineQueryDTO 访问器
    * @param $params$
    * @return $returns$
    * @author ink
    * @Description: 去除Lombok，显式提供getter/setter以保证Service层调用稳定
    * @date 2025-11-10 00:02
    */
    public Long getChannelId() { return channelId; }
    public void setChannelId(Long channelId) { this.channelId = channelId; }

    public String getConfigType() { return configType; }
    public void setConfigType(String configType) { this.configType = configType; }

    public String getSourceField() { return sourceField; }
    public void setSourceField(String sourceField) { this.sourceField = sourceField; }

    public String getTargetField() { return targetField; }
    public void setTargetField(String targetField) { this.targetField = targetField; }

    public String getConfigStatus() { return configStatus; }
    public void setConfigStatus(String configStatus) { this.configStatus = configStatus; }

    public LocalDateTime getStartTime() { return startTime; }
    public void setStartTime(LocalDateTime startTime) { this.startTime = startTime; }

    public LocalDateTime getEndTime() { return endTime; }
    public void setEndTime(LocalDateTime endTime) { this.endTime = endTime; }
}